/*
* Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: nfcaiwengine.h.
*/

#ifndef NFCAIWENGINE_H
#define NFCAIWENGINE_H

#include <AiwCommon.h>

class CAiwServiceHandler;
class NfcAiwWrapper;

//! NFC engine class.
/*!
  This class uses the Symbian AIW framework to get a remote device's
  Bluetooth information using an NFC connection.
 */
class CNfcAiwEngine : public CBase, public MAiwNotifyCallback
    {
public:
     //! 2-phased constructor.
    /*!
      \param aLocationWrapper Pointer to Qt-Symbian wrapper class.
     */
    static CNfcAiwEngine* NewL( NfcAiwWrapper *aLocationWrapper );

    //! Destructor.
    virtual ~CNfcAiwEngine();

    //! Starts Bluetooth Easy Setup by using the Symbian AIW framework.
    void StartEasySetupL();

    //! Callback function from MAiwNotifyCallback.
    /*!
     \param aCmdId AIW command identifier.
     \param aEventId Event identifier.
     \param aEventParamList Event related parameters.
     \param aInParamList Not in use.
     */
    TInt HandleNotifyL( TInt aCmdId,
                        TInt aEventId,
                        CAiwGenericParamList &aEventParamList,
                        const CAiwGenericParamList &aInParamList );
private:
    //! Constructor.
    CNfcAiwEngine( NfcAiwWrapper *aLocationWrapper );

    //! 2nd phase constructor.
    void ConstructL();

private:
   NfcAiwWrapper *iAiwWrapper; //!< Pointer to Qt-Symbian wrapper class.

   CAiwServiceHandler *iServiceHandler; //!< Pointer to AIW service handler.
};

#endif // NFCAIWENGINE_H
